package com.qingzhu.service;

import com.github.pagehelper.Page;
import com.qingzhu.pojo.*;
import com.qingzhu.pojovo.SearchResult;

import java.util.List;

public interface GoodsService {
    // 回显品牌列表
    public List<Brand> findBrandAll();
    // 回显规格列表(并关联查询所有的规格参数)
    public List<Specification> findSpecificationAll();
    // 根据ID（手机型号）精确查询商品(SPU+该商品默认的SKU机型+详细的SKU参数集)
    public Goods findGoodsById(int goodsId);
    // 根据ID（手机型号）精确查询商品(SPU)
    public Goods findGoodsFromId(int goodsId, boolean ItemSpecs, boolean excludeDel);
    // 查找指定的SKU规格
    public Item findItem(int goodsId, String edition, String colour, String network);
    // 搜索查询
    public Page<Goods> findGoodsByLike(String keyword, int pageNum, int pageSize);
    public Page<Goods> findGoodsByLike(String keyword, int pageNum, int pageSize, boolean attributeStrIsToMap,boolean excludeDel);
    // 筛选搜索
    public CustomPage<Goods> screenSearch(SearchResult searchResult);
    // 后台管理根据商品ID查找所有规格的产品（根据SPU查找SKU）
    public List<Item> findItemsFromGoodsId(int goodsId, boolean excludeDel);
    // 后台管理根据SKU-ID精确定位单品信息
    public Item findItemfromId(int itemId);
    // 添加商品到数据库（SPU+默认SKU）
    public int addGoods(Goods goods, Item item);
    // 添加单品到数据库（SKU）
    public int addItem(int goodsId, Item item);
    // 修改单品信息（SKU）
    public int updateItem(Item item);
    // 修改商品信息（SPU）
    public int updateGoods(Goods goods);
    // 修改商品(SKU)状态
    public int updateItemState(String state,String itemId);
    // 修改所有选中商品(SKU)的状态
    public int updateItemDelStateAll(String state,List<String> itemIds);
    // 修改商品(SPU)状态
    public int updateGoodsState(String state,String goodsId);
}
